perm filename SORT.LSP[W78,JMC] blob
sn#327649 filedate 1978-01-08 generic text, type C, neo UTF8
COMMENT ā VALID 00002 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002
C00004 ENDMK
Cā;
(DEFUN GGET (N U)
(COND ((NULL U) (CONS NIL NIL))
((ZEROP N) (CONS (LIST (CAR U)) (CDR U)))
(T ((LAMBDA (Z) (COND ((NULL (CDR Z)) Z)
(T ((LAMBDA (W)
(CONS (MERGE (CAR Z)
(CAR W))
(CDR W)))
(GGET (SUB1 N) (CDR Z))))))
(GGET (SUB1 N) U)))))
(DEFUN MERGE (U V)
(COND ((NULL U) V)
((NULL V) U)
((LESSP2 (CAR U) (CAR V))
(CONS (CAR U) (MERGE (CDR U) V)))
(T (CONS (CAR V) (MERGE U (CDR V))))))
(defun lessp2 (x y) ((lambda (z) (lessp x y)) (setq c (add1 c))))
(DEFUN SORT1 (U N S)
(COND ((NULL U) S)
(T ((LAMBDA (Z) (COND ((NULL (CDR Z)) (MERGE S (CAR Z)))
(T (SORT1 (CDR Z)
(ADD1 N)
(MERGE S (CAR Z))))))
(GGET N U)))))
(DEFUN SORT (U) (SORT1 U 0 NIL))
(defun sort2 (u) (car (gget 20 u)))
(setq c 0)